diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c
index 5f0f200..f7c20dc 100644
--- a/drivers/net/zynq_gem.c
+++ b/drivers/net/zynq_gem.c
@@ -532,43 +532,54 @@
 static int zynq_gem_recv(struct udevice *dev, int flags, uchar **packetp)
 {
 	int frame_len;
+	u32 addr;
 	struct zynq_gem_priv *priv = dev_get_priv(dev);
 	struct emac_bd *current_bd = &priv->rx_bd[priv->rxbd_current];
-	struct emac_bd *first_bd;
 
 	if (!(current_bd->addr & ZYNQ_GEM_RXBUF_NEW_MASK))
-		return 0;
+		return -1;
 
 	if (!(current_bd->status &
 			(ZYNQ_GEM_RXBUF_SOF_MASK | ZYNQ_GEM_RXBUF_EOF_MASK))) {
 		printf("GEM: SOF or EOF not set for last buffer received!\n");
-		return 0;
+		return -1;
 	}
 
 	frame_len = current_bd->status & ZYNQ_GEM_RXBUF_LEN_MASK;
-	if (frame_len) {
-		u32 addr = current_bd->addr & ZYNQ_GEM_RXBUF_ADD_MASK;
-		addr &= ~(ARCH_DMA_MINALIGN - 1);
-
-		net_process_received_packet((u8 *)(ulong)addr, frame_len);
-
-		if (current_bd->status & ZYNQ_GEM_RXBUF_SOF_MASK)
-			priv->rx_first_buf = priv->rxbd_current;
-		else {
-			current_bd->addr &= ~ZYNQ_GEM_RXBUF_NEW_MASK;
-			current_bd->status = 0xF0000000; /* FIXME */
-		}
-
-		if (current_bd->status & ZYNQ_GEM_RXBUF_EOF_MASK) {
-			first_bd = &priv->rx_bd[priv->rx_first_buf];
-			first_bd->addr &= ~ZYNQ_GEM_RXBUF_NEW_MASK;
-			first_bd->status = 0xF0000000;
-		}
-
-		if ((++priv->rxbd_current) >= RX_BUF)
-			priv->rxbd_current = 0;
+	if (!frame_len) {
+		printf("%s: Zero size packet?\n", __func__);
+		return -1;
 	}
 
+	addr = current_bd->addr & ZYNQ_GEM_RXBUF_ADD_MASK;
+	addr &= ~(ARCH_DMA_MINALIGN - 1);
+	*packetp = (uchar *)(uintptr_t)addr;
+
+	return frame_len;
+}
+
+static int zynq_gem_free_pkt(struct udevice *dev, uchar *packet, int length)
+{
+	struct zynq_gem_priv *priv = dev_get_priv(dev);
+	struct emac_bd *current_bd = &priv->rx_bd[priv->rxbd_current];
+	struct emac_bd *first_bd;
+
+	if (current_bd->status & ZYNQ_GEM_RXBUF_SOF_MASK) {
+		priv->rx_first_buf = priv->rxbd_current;
+	} else {
+		current_bd->addr &= ~ZYNQ_GEM_RXBUF_NEW_MASK;
+		current_bd->status = 0xF0000000; /* FIXME */
+	}
+
+	if (current_bd->status & ZYNQ_GEM_RXBUF_EOF_MASK) {
+		first_bd = &priv->rx_bd[priv->rx_first_buf];
+		first_bd->addr &= ~ZYNQ_GEM_RXBUF_NEW_MASK;
+		first_bd->status = 0xF0000000;
+	}
+
+	if ((++priv->rxbd_current) >= RX_BUF)
+		priv->rxbd_current = 0;
+
 	return 0;
 }
 
@@ -651,6 +662,7 @@
 	.start			= zynq_gem_init,
 	.send			= zynq_gem_send,
 	.recv			= zynq_gem_recv,
+	.free_pkt		= zynq_gem_free_pkt,
 	.stop			= zynq_gem_halt,
 	.write_hwaddr		= zynq_gem_setup_mac,
 };
